Skip to content

feat: upgrade Node.js from 8.15.1 to 20.18.0 LTS (SCRUM-2)#2

Open
devin-ai-integration[bot] wants to merge 2 commits intomasterfrom
devin/1753403347-node-upgrade
Open

feat: upgrade Node.js from 8.15.1 to 20.18.0 LTS (SCRUM-2)#2
devin-ai-integration[bot] wants to merge 2 commits intomasterfrom
devin/1753403347-node-upgrade

Conversation

@devin-ai-integration
Copy link
Copy Markdown

feat: upgrade Node.js from 8.15.1 to 20.18.0 LTS (SCRUM-2)

Summary

This PR upgrades the Node.js runtime from the severely outdated version 8.15.1 (EOL since December 2019) to Node.js 20.18.0 LTS across both bank-client and bank-server repositories. This critical infrastructure upgrade enables modern dependency updates, security patches, and improved performance.

Key Changes:

  • Updated .nvmrc files to specify Node.js 20.18.0
  • Updated package.json engines field to require Node.js >=20.18.0
  • Created missing .nvmrc file for bank-server
  • Added missing engines field to bank-server package.json
  • Regenerated yarn.lock files with Node.js 20.18.0 and Yarn 1.22.22
  • Verified both applications start successfully with the new Node.js version

Testing Performed:

  • ✅ Bank-client starts on localhost:3000 with NODE_OPTIONS="--openssl-legacy-provider"
  • ✅ Bank-server starts in development mode with file watching
  • ⚠️ TypeScript compilation shows 393 errors (toolchain compatibility issues)
  • ⚠️ Webpack build shows modern JS syntax parsing errors (webpack 4.x + Node 20.x compatibility)

Review & Testing Checklist for Human

Risk Level: 🟡 MEDIUM - Major version upgrade with some compatibility warnings

  • Full application functionality test: Verify all features work end-to-end, not just startup
  • Production build verification: Ensure npm run build works correctly for client
  • Legacy provider requirement: Confirm client requires NODE_OPTIONS="--openssl-legacy-provider" and this is acceptable
  • TypeScript/webpack errors: Evaluate if the 393 TypeScript errors and webpack build warnings affect functionality
  • Performance validation: Compare application performance before/after upgrade

Recommended Test Plan:

  1. Start both applications locally with Node.js 20.18.0
  2. Test core banking features: login, account creation, transactions, dashboard
  3. Run production builds and verify they complete successfully
  4. Consider load testing if performance is critical

Diagram

%%{ init : { "theme" : "default" }}%%
graph TB
    subgraph "akkp-windsurf/bank-client"
        A["client/.nvmrc<br/>lts/dubnium → 20.18.0"]:::major-edit
        B["client/package.json<br/>engines: >=8.15.1 → >=20.18.0"]:::major-edit
        C["client/yarn.lock<br/>Regenerated with Node 20.x"]:::major-edit
    end
    
    subgraph "akkp-windsurf/bank-server"  
        D["server/.nvmrc<br/>Created: 20.18.0"]:::major-edit
        E["server/package.json<br/>Added engines: >=20.18.0"]:::major-edit
        F["server/yarn.lock<br/>Regenerated with Node 20.x"]:::major-edit
    end
    
    G["Node.js Runtime<br/>8.15.1 → 20.18.0 LTS"]:::context
    
    A --> G
    B --> G  
    D --> G
    E --> G
    
    subgraph Legend
        L1["Major Edit"]:::major-edit
        L2["Minor Edit"]:::minor-edit  
        L3["Context/No Edit"]:::context
    end
    
    classDef major-edit fill:#90EE90
    classDef minor-edit fill:#87CEEB
    classDef context fill:#FFFFFF
Loading

Notes

  • OpenSSL Legacy Provider: The client application requires NODE_OPTIONS="--openssl-legacy-provider" due to webpack 4.x compatibility issues with Node.js 20.x's updated OpenSSL
  • TypeScript Errors: The server shows 393 TypeScript compilation errors related to type definitions, but the application starts and runs successfully
  • No CI Updates: No GitHub workflow files were found in either repository, so no CI configuration updates were needed
  • Yarn Version: Upgraded to Yarn 1.22.22 (latest stable) for improved package resolution

Session Details:

devin-ai-integration Bot and others added 2 commits July 25, 2025 00:29
- Create .nvmrc file with 20.18.0
- Add engines field to package.json requiring Node.js >=20.18.0
- Addresses SCRUM-2: Node.js infrastructure upgrade for security and modern dependency support

Co-Authored-By: Arthur Poon <arthur.poon@windsurf.com>
- Remove old yarn.lock generated with Node.js 8.x
- Regenerate with latest Yarn 1.22.22 and Node.js 20.18.0 LTS
- Ensures dependency compatibility with modern Node.js runtime
- Part of SCRUM-2: Node.js infrastructure upgrade

Co-Authored-By: Arthur Poon <arthur.poon@windsurf.com>
@devin-ai-integration
Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants